package map.oj;

import java.util.HashMap;
import java.util.Map;

public class Num205 {
    /**
     * 同构字符串
     * s 的任意一个字符被 t 中唯一的字符对应，
     * 同时 t 的任意一个字符被 s 中唯一的字符对应
     */
    public boolean isIsomorphic(String s, String t) {
        Map<Character,Character> st = new HashMap<Character,Character>();
        Map<Character,Character> ts = new HashMap<Character,Character>();

        for (int i = 0; i < s.length(); i++) {
            char cS = s.charAt(i);
            char cT = t.charAt(i);
            if((st.containsKey(cS) && st.get(cS) != cT) ||
                ts.containsKey(cT) && ts.get(cT) != cS){
                return false;
            }
            st.put(cS,cT);
            ts.put(cT,cS);
        }
        return true;
    }
}
